﻿using System;
using Com.Binaria.Core.Util;

namespace Com.Binaria.SISCOB.DTO
{

    /// <summary>
    ///	Clase representativa de la tabla RegistroDocumento
    /// </summary>
    [Serializable]
    public class RegistroDocumentoDTO : ICloneable
    {
        #region propiedades publicas
		private System.Int32? _id;
		private System.Int32? _idRegistroContable;
		private RegistroContableDTO _registroContable;
		private System.Int32? _idDocumentoTransaccion;
		private DocumentoTransaccionDTO _documentoTransaccion;
        #endregion

        #region metodos set y get propiedades publicas

        public System.Int32? Id
        {
           get { return _id; }
           set { _id = value; }
        }

        public System.Int32? IdRegistroContable
        {
           get { return _idRegistroContable; }
           set { _idRegistroContable = value; }
        }
				
        public RegistroContableDTO RegistroContable
        {
           get { return _registroContable; }
           set { _registroContable = value; }
        }

        public System.Int32? IdDocumentoTransaccion
        {
           get { return _idDocumentoTransaccion; }
           set { _idDocumentoTransaccion = value; }
        }
				
        public DocumentoTransaccionDTO DocumentoTransaccion
        {
           get { return _documentoTransaccion; }
           set { _documentoTransaccion = value; }
        }
        #endregion

        #region constructores
        /// <summary>
        /// constructor por defecto del objeto
        /// </summary>
        public RegistroDocumentoDTO() { }
        #endregion

        #region ICloneable Members
        object ICloneable.Clone()
        {
            return this.Clone();
        }
        
        /// <summary>
        /// Metodo que permite crear una copia de la actual instancia en memoria
        /// </summary>
        /// <returns>una copia del objeto existente en memoria</returns>
        public RegistroDocumentoDTO Clone()
        {	
	 	    RegistroDocumentoDTO oDto = (RegistroDocumentoDTO)this.MemberwiseClone();		
            oDto.RegistroContable = this.RegistroContable == null ? null: (RegistroContableDTO)this.RegistroContable.Clone();
            oDto.DocumentoTransaccion = this.DocumentoTransaccion == null ? null: (DocumentoTransaccionDTO)this.DocumentoTransaccion.Clone();
	 	    return oDto;
	    }
        #endregion Clone Method	
    }//End class RegistroDocumentoDTO
}//End namespace
